//此JS用来测试自己实现的EventEmitter
var EventEmitter = require('./myEvents');
let util = require('util');
function Bell() {
    EventEmitter.call(this);//继承EventEmitter私有属性/方法
}
//util.inherits原型继承公有方法
var sym = Symbol('symbol');
util.inherits(Bell,EventEmitter);
var bell = new Bell();
bell.on('events',first);//这是第1次触发事件,里面有value1
bell.on('events',two);//这是第1次触发事件,里面有value1和value2
bell.on('events',three);//这是第1次触发事件,里面有value1和value2还有value3
bell.on(sym,three);
// console.log(bell.listenerCount('events'));//3
// console.log(bell.eventNames());//['events',Symbol(symbol)]
// console.log(bell.listeners('events'));//[ [Function: first], [Function: two], [Function: three] ]
// bell.emit('events',1,'value1','value2','value3');
// bell.removeListener('events',three);
// console.log(bell.listeners('events'));//[ [Function: first], [Function: two] ]
// bell.removeAllListeners('events');
// console.log(bell.listenerCount('events'));//Error:无此类型事件(因为已经移除所有events事件)


// 测试prependListener方法
// bell.on('foo',a);
// bell.on('foo',b);
// bell.prependListener('foo',b);
// bell.prependListener('foo',c);
// bell.emit('foo');//c,b,a,b

//事件
function first(num,data) {
    console.log(`这是第${num}次触发事件,里面有${data}`)
};
function two(num,data,dataTwo) {
    console.log(`这是第${num}次触发事件,里面有${data}和${dataTwo}`);
};
function three(num,data,dataTwo,dataThree) {
    console.log(`这是第${num}次触发事件,里面有${data}和${dataTwo}还有${dataThree}`);
};
function a() {
    console.log('a');
}
function b() {
    console.log('b');
}
function c() {
    console.log('c');
}

